package com.nexgo.payment.databases;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.nexgo.payment.databases.Blacklist;
import com.nexgo.payment.databases.Classification;
import com.nexgo.payment.databases.OperatorInfo;
import com.nexgo.payment.databases.PasswordInfo;
import com.nexgo.payment.databases.QpsBinB;
import com.nexgo.payment.databases.QpsBinC;
import com.nexgo.payment.databases.SettleInfo;
import com.nexgo.payment.databases.Signature;
import com.nexgo.payment.databases.Statistics;
import com.nexgo.payment.databases.TransRecord;

import com.nexgo.payment.databases.BlacklistDao;
import com.nexgo.payment.databases.ClassificationDao;
import com.nexgo.payment.databases.OperatorInfoDao;
import com.nexgo.payment.databases.PasswordInfoDao;
import com.nexgo.payment.databases.QpsBinBDao;
import com.nexgo.payment.databases.QpsBinCDao;
import com.nexgo.payment.databases.SettleInfoDao;
import com.nexgo.payment.databases.SignatureDao;
import com.nexgo.payment.databases.StatisticsDao;
import com.nexgo.payment.databases.TransRecordDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig blacklistDaoConfig;
    private final DaoConfig classificationDaoConfig;
    private final DaoConfig operatorInfoDaoConfig;
    private final DaoConfig passwordInfoDaoConfig;
    private final DaoConfig qpsBinBDaoConfig;
    private final DaoConfig qpsBinCDaoConfig;
    private final DaoConfig settleInfoDaoConfig;
    private final DaoConfig signatureDaoConfig;
    private final DaoConfig statisticsDaoConfig;
    private final DaoConfig transRecordDaoConfig;

    private final BlacklistDao blacklistDao;
    private final ClassificationDao classificationDao;
    private final OperatorInfoDao operatorInfoDao;
    private final PasswordInfoDao passwordInfoDao;
    private final QpsBinBDao qpsBinBDao;
    private final QpsBinCDao qpsBinCDao;
    private final SettleInfoDao settleInfoDao;
    private final SignatureDao signatureDao;
    private final StatisticsDao statisticsDao;
    private final TransRecordDao transRecordDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        blacklistDaoConfig = daoConfigMap.get(BlacklistDao.class).clone();
        blacklistDaoConfig.initIdentityScope(type);

        classificationDaoConfig = daoConfigMap.get(ClassificationDao.class).clone();
        classificationDaoConfig.initIdentityScope(type);

        operatorInfoDaoConfig = daoConfigMap.get(OperatorInfoDao.class).clone();
        operatorInfoDaoConfig.initIdentityScope(type);

        passwordInfoDaoConfig = daoConfigMap.get(PasswordInfoDao.class).clone();
        passwordInfoDaoConfig.initIdentityScope(type);

        qpsBinBDaoConfig = daoConfigMap.get(QpsBinBDao.class).clone();
        qpsBinBDaoConfig.initIdentityScope(type);

        qpsBinCDaoConfig = daoConfigMap.get(QpsBinCDao.class).clone();
        qpsBinCDaoConfig.initIdentityScope(type);

        settleInfoDaoConfig = daoConfigMap.get(SettleInfoDao.class).clone();
        settleInfoDaoConfig.initIdentityScope(type);

        signatureDaoConfig = daoConfigMap.get(SignatureDao.class).clone();
        signatureDaoConfig.initIdentityScope(type);

        statisticsDaoConfig = daoConfigMap.get(StatisticsDao.class).clone();
        statisticsDaoConfig.initIdentityScope(type);

        transRecordDaoConfig = daoConfigMap.get(TransRecordDao.class).clone();
        transRecordDaoConfig.initIdentityScope(type);

        blacklistDao = new BlacklistDao(blacklistDaoConfig, this);
        classificationDao = new ClassificationDao(classificationDaoConfig, this);
        operatorInfoDao = new OperatorInfoDao(operatorInfoDaoConfig, this);
        passwordInfoDao = new PasswordInfoDao(passwordInfoDaoConfig, this);
        qpsBinBDao = new QpsBinBDao(qpsBinBDaoConfig, this);
        qpsBinCDao = new QpsBinCDao(qpsBinCDaoConfig, this);
        settleInfoDao = new SettleInfoDao(settleInfoDaoConfig, this);
        signatureDao = new SignatureDao(signatureDaoConfig, this);
        statisticsDao = new StatisticsDao(statisticsDaoConfig, this);
        transRecordDao = new TransRecordDao(transRecordDaoConfig, this);

        registerDao(Blacklist.class, blacklistDao);
        registerDao(Classification.class, classificationDao);
        registerDao(OperatorInfo.class, operatorInfoDao);
        registerDao(PasswordInfo.class, passwordInfoDao);
        registerDao(QpsBinB.class, qpsBinBDao);
        registerDao(QpsBinC.class, qpsBinCDao);
        registerDao(SettleInfo.class, settleInfoDao);
        registerDao(Signature.class, signatureDao);
        registerDao(Statistics.class, statisticsDao);
        registerDao(TransRecord.class, transRecordDao);
    }
    
    public void clear() {
        blacklistDaoConfig.clearIdentityScope();
        classificationDaoConfig.clearIdentityScope();
        operatorInfoDaoConfig.clearIdentityScope();
        passwordInfoDaoConfig.clearIdentityScope();
        qpsBinBDaoConfig.clearIdentityScope();
        qpsBinCDaoConfig.clearIdentityScope();
        settleInfoDaoConfig.clearIdentityScope();
        signatureDaoConfig.clearIdentityScope();
        statisticsDaoConfig.clearIdentityScope();
        transRecordDaoConfig.clearIdentityScope();
    }

    public BlacklistDao getBlacklistDao() {
        return blacklistDao;
    }

    public ClassificationDao getClassificationDao() {
        return classificationDao;
    }

    public OperatorInfoDao getOperatorInfoDao() {
        return operatorInfoDao;
    }

    public PasswordInfoDao getPasswordInfoDao() {
        return passwordInfoDao;
    }

    public QpsBinBDao getQpsBinBDao() {
        return qpsBinBDao;
    }

    public QpsBinCDao getQpsBinCDao() {
        return qpsBinCDao;
    }

    public SettleInfoDao getSettleInfoDao() {
        return settleInfoDao;
    }

    public SignatureDao getSignatureDao() {
        return signatureDao;
    }

    public StatisticsDao getStatisticsDao() {
        return statisticsDao;
    }

    public TransRecordDao getTransRecordDao() {
        return transRecordDao;
    }

}
